mod excel_utils;
mod excel_generator;

fn main() {
    // 示例参数
    let input_path = "input.csv";  // 改为CSV格式
    let output_path = "output.csv";
    let decrypt_columns = ["A", "C"];
    let show_columns = ["A", "B", "C"];
    let key = [0u8; 32]; // 32字节密钥，实际使用请替换
    let iv = [0u8; 16];  // 16字节IV，实际使用请替换

    println!("Excel 加密/解密工具");
    println!("1. 生成加密的示例Excel文件");
    println!("2. 解密Excel文件");
    println!();

    // 首先生成一个加密的示例文件
    println!("正在生成加密的示例Excel文件...");
    match excel_generator::generate_sample_encrypted_excel("input.csv", &key, &iv) {  // 改为CSV格式
        Ok(_) => println!("✓ 成功生成加密文件: input.csv"),
        Err(e) => {
            eprintln!("✗ 生成加密文件失败: {}", e);
            return;
        }
    }

    println!();
    println!("正在解密Excel文件...");

    // 然后解密这个文件
    match excel_utils::process_excel_with_decrypt(
        input_path,
        output_path,
        &decrypt_columns,
        &show_columns,
        &key,
        &iv,
    ) {
        Ok(_) => {
            println!("✓ 解密完成，结果已保存到 {}", output_path);
            println!();
            println!("文件说明:");
            println!("- input.csv: 包含加密数据的原始文件");
            println!("- output.csv: 解密后的结果文件");
            println!("- A列和C列的数据已被解密");
            println!("- B列保持明文不变");
        },
        Err(e) => eprintln!("✗ 解密失败: {}", e),
    }
}
